home *** CD-ROM | disk | FTP | other *** search
/ Clickx 47 / Clickx 47.iso / assets / software / Miro_Installer.exe / Miro_Downloader.exe / menubar.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2008-01-10  |  9.3 KB  |  246 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.5)
  3.  
  4. from gtcache import gettext as _
  5. import config
  6. import prefs
  7. from string import Template
  8. import app
  9. (CTRL, ALT, SHIFT, CMD, RIGHT_ARROW, LEFT_ARROW, UP_ARROW, DOWN_ARROW, SPACE, ENTER, DELETE, BKSPACE, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12) = range(24)
  10.  
  11. _ = lambda x: x
  12. platform = config.get(prefs.APP_PLATFORM)
  13. if platform == 'osx':
  14.     MOD = CMD
  15. else:
  16.     MOD = CTRL
  17.  
  18. class ShortCut:
  19.     
  20.     def __init__(self, key, *modifiers):
  21.         self.modifiers = modifiers
  22.         self.key = key
  23.  
  24.  
  25. Key = ShortCut
  26.  
  27. class MenuItem:
  28.     
  29.     def __init__(self, label, action, shortcuts, impl = None, enabled = True, **stateLabels):
  30.         self.label = label
  31.         self.action = action
  32.         self.shortcuts = shortcuts
  33.         self.enabled = enabled
  34.         self.stateLabels = stateLabels
  35.         self.impl = impl
  36.  
  37.  
  38.  
  39. class Separator:
  40.     pass
  41.  
  42.  
  43. class Menu:
  44.     
  45.     def __init__(self, label, action, *menuitems):
  46.         self.label = label
  47.         self.action = action
  48.         self.labels = {
  49.             action: label }
  50.         self.stateLabels = { }
  51.         self.shortcuts = { }
  52.         self.impls = { }
  53.         self.menuitems = menuitems
  54.         for item in menuitems:
  55.             if not isinstance(item, Separator):
  56.                 self.labels[item.action] = item.label
  57.                 self.shortcuts[item.action] = item.shortcuts
  58.                 self.impls[item.action] = item.impl
  59.                 if item.stateLabels:
  60.                     self.stateLabels[item.action] = item.stateLabels
  61.                 
  62.             item.stateLabels
  63.         
  64.  
  65.     
  66.     def getLabel(self, action, state = None, variables = None):
  67.         if variables == None:
  68.             variables = { }
  69.         
  70.         if state is None:
  71.             
  72.             try:
  73.                 return Template(self.labels[action]).substitute(**variables)
  74.             except KeyError:
  75.                 return action
  76.             except:
  77.                 None<EXCEPTION MATCH>KeyError
  78.             
  79.  
  80.         None<EXCEPTION MATCH>KeyError
  81.         
  82.         try:
  83.             return Template(self.stateLabels[action][state]).substitute(**variables)
  84.         except KeyError:
  85.             return self.getLabel(action)
  86.  
  87.  
  88.     
  89.     def getShortcuts(self, action):
  90.         
  91.         try:
  92.             return self.shortcuts[action]
  93.         except:
  94.             return ()
  95.  
  96.  
  97.  
  98.  
  99. class MenuBar:
  100.     
  101.     def __init__(self, *menus):
  102.         self.menus = menus
  103.         self.labels = { }
  104.         self.stateLabels = { }
  105.         self.shortcuts = { }
  106.         self.impls = { }
  107.         for menu in menus:
  108.             self.labels.update(menu.labels)
  109.             self.stateLabels.update(menu.stateLabels)
  110.             self.shortcuts.update(menu.shortcuts)
  111.             self.impls.update(menu.impls)
  112.         
  113.  
  114.     
  115.     def __iter__(self):
  116.         for menu in self.menus:
  117.             yield menu
  118.         
  119.  
  120.     
  121.     def getLabel(self, action, state = None, variables = None):
  122.         if variables == None:
  123.             variables = { }
  124.         
  125.         if state is None:
  126.             
  127.             try:
  128.                 return Template(self.labels[action]).substitute(**variables)
  129.             except KeyError:
  130.                 return action
  131.             except:
  132.                 None<EXCEPTION MATCH>KeyError
  133.             
  134.  
  135.         None<EXCEPTION MATCH>KeyError
  136.         
  137.         try:
  138.             return Template(self.stateLabels[action][state]).substitute(**variables)
  139.         except KeyError:
  140.             return self.getLabel(action)
  141.  
  142.  
  143.     
  144.     def getShortcuts(self, action):
  145.         
  146.         try:
  147.             if self.shortcuts[action] is None:
  148.                 return ()
  149.             else:
  150.                 return self.shortcuts[action]
  151.         except KeyError:
  152.             return ()
  153.  
  154.  
  155.     
  156.     def getShortcut(self, action):
  157.         all = self.getShortcuts(action)
  158.         if len(all) > 0:
  159.             return all[0]
  160.         else:
  161.             return ShortCut(None)
  162.  
  163.     
  164.     def getImpl(self, action):
  165.         
  166.         try:
  167.             return self.impls[action]
  168.         except KeyError:
  169.             return None
  170.  
  171.  
  172.  
  173. VideoItems = [
  174.     MenuItem(_('_Open'), 'Open', (Key('o', MOD),)),
  175.     MenuItem(_('_Download Video'), 'NewDownload', (), impl = (lambda : app.controller.newDownload())),
  176.     MenuItem(_('Check _Version'), 'CheckVersion', ()),
  177.     Separator(),
  178.     MenuItem(_('_Remove Video'), 'RemoveVideos', (Key(DELETE), Key(BKSPACE, MOD)), enabled = False, plural = _('_Remove Videos')),
  179.     MenuItem(_('Re_name Video'), 'RenameVideo', (), enabled = False),
  180.     MenuItem(_('Save Video _As...'), 'SaveVideo', (Key('s', MOD),), enabled = False, plural = _('Save Videos _As...')),
  181.     MenuItem(_('Copy Video _URL'), 'CopyVideoURL', (Key('u', MOD),), enabled = False),
  182.     Separator(),
  183.     MenuItem(_('_Options...'), 'EditPreferences', ()),
  184.     MenuItem(_('_Quit'), 'Quit', (Key('q', MOD),))]
  185. if platform == 'gtk-x11':
  186.     del VideoItems[2]
  187.  
  188. EditItems = [
  189.     MenuItem(_('Cu_t'), 'ClipboardCut', (Key('x', MOD),)),
  190.     MenuItem(_('_Copy'), 'ClipboardCopy', (Key('c', MOD),)),
  191.     MenuItem(_('_Paste'), 'ClipboardPaste', (Key('v', MOD),)),
  192.     MenuItem(_('Select _All'), 'ClipboardSelectAll', (Key('a', MOD),)),
  193.     MenuItem(_('_Delete'), 'ClipboardSelectAll', (Key(DELETE), Key(BKSPACE, MOD)))]
  194. ChannelItems = [
  195.     MenuItem(_('Add _Channel'), 'NewChannel', (Key('n', MOD),)),
  196.     MenuItem(_('New Searc_h Channel...'), 'NewSearchChannel', ()),
  197.     MenuItem(_('New _Folder...'), 'NewChannelFolder', (Key('n', MOD, SHIFT),)),
  198.     MenuItem(_('Add Channel _Guide...'), 'NewGuide', ()),
  199.     Separator(),
  200.     MenuItem(_('Re_name Channel...'), 'RenameChannel', (), enabled = False),
  201.     MenuItem(_('_Remove Channel...'), 'RemoveChannels', (Key(DELETE), Key(BKSPACE, MOD)), enabled = False, plural = _('_Remove Channels...'), folders = _('_Remove Channel Folders...'), folder = _('_Remove Channel Folder...')),
  202.     MenuItem(_('_Update Channel...'), 'UpdateChannels', (Key('r', MOD), Key(F5)), enabled = False, plural = _('_Update Channels...')),
  203.     MenuItem(_('Update _All Channels'), 'UpdateAllChannels', (Key('r', MOD, SHIFT),)),
  204.     Separator(),
  205.     MenuItem(_('_Import Channels (OPML)...'), 'ImportChannels', (), impl = (lambda : app.controller.importChannels())),
  206.     MenuItem(_('E_xport Channels (OPML)...'), 'ExportChannels', (), impl = (lambda : app.controller.exportChannels())),
  207.     Separator(),
  208.     MenuItem(_('_Send this channel to a friend'), 'MailChannel', (), enabled = False),
  209.     MenuItem(_('Copy Channel _Link'), 'CopyChannelURL', (), enabled = False)]
  210. PlaylistItems = [
  211.     MenuItem(_('New _Playlist'), 'NewPlaylist', (Key('p', MOD),)),
  212.     MenuItem(_('New Playlist Fol_der'), 'NewPlaylistFolder', (Key('p', MOD, SHIFT),)),
  213.     Separator(),
  214.     MenuItem(_('Re_name Playlist'), 'RenamePlaylist', (), enabled = False),
  215.     MenuItem(_('_Remove Playlist'), 'RemovePlaylists', (Key(DELETE), Key(BKSPACE, MOD)), enabled = False, plural = _('_Remove Playlists'), folders = _('_Remove Playlist Folders'), folder = _('_Remove Playlist Folder'))]
  216. if platform == 'windows-xul':
  217.     fullscreen_shortcuts = (Key('f', MOD), Key(ENTER, ALT))
  218. else:
  219.     fullscreen_shortcuts = (Key('f', MOD),)
  220. PlaybackItems = [
  221.     MenuItem(_('_Play'), 'PlayPauseVideo', (Key(SPACE, MOD),), enabled = False, play = _('_Play'), pause = _('_Pause')),
  222.     MenuItem(_('_Stop'), 'StopVideo', (Key('d', MOD),), enabled = False),
  223.     Separator(),
  224.     MenuItem(_('_Next Video'), 'NextVideo', (Key(RIGHT_ARROW, MOD),), enabled = False),
  225.     MenuItem(_('_Previous Video'), 'PreviousVideo', (Key(LEFT_ARROW, MOD),), enabled = False),
  226.     Separator(),
  227.     MenuItem(_('Skip _Forward'), 'FastForward', (Key(RIGHT_ARROW),), enabled = False),
  228.     MenuItem(_('Skip _Back'), 'Rewind', (Key(LEFT_ARROW),), enabled = False),
  229.     Separator(),
  230.     MenuItem(_('Volume _Up'), 'UpVolume', (Key(UP_ARROW, MOD),), enabled = False),
  231.     MenuItem(_('Volume _Down'), 'DownVolume', (Key(DOWN_ARROW, MOD),), enabled = False),
  232.     Separator(),
  233.     MenuItem(_('_Fullscreen'), 'Fullscreen', fullscreen_shortcuts, enabled = False)]
  234. HelpItems = [
  235.     MenuItem(_('_About'), 'About', ()),
  236.     MenuItem(_('_Donate'), 'Donate', ()),
  237.     MenuItem(_('_Help'), 'Help', (Key(F1),)),
  238.     Separator(),
  239.     MenuItem(_('Report a _Bug'), 'ReportBug', ())]
  240. if platform == 'gtk-x11':
  241.     main_title = _('_Video')
  242. else:
  243.     main_title = _('_File')
  244. menubar = MenuBar(Menu(main_title, 'Video', *VideoItems), Menu(_('_Channels'), 'Channels', *ChannelItems), Menu(_('_Playlists'), 'Playlists', *PlaylistItems), Menu(_('P_layback'), 'Playback', *PlaybackItems), Menu(_('_Help'), 'Help', *HelpItems))
  245. traymenu = Menu('Miro', 'Miro', MenuItem(_('Play Unwatched ($numUnwatched)'), 'PlayUnwatched', ()), MenuItem(_('Pause All Downloads ($numDownloading)'), 'PauseDownloads', ()), MenuItem(_('Resume All Downloads ($numPaused)'), 'ResumeDownloads', ()), Separator(), MenuItem(_('Options...'), 'EditPreferences', ()), Separator(), MenuItem(_('Hide Window'), 'RestoreWindow', (), restore = _('Show Window')), MenuItem(_('Quit'), 'Quit', ()))
  246.